package com.king.pattem.guardedsuspension;

import java.util.LinkedList;

/**
 * @author taomk
 * @version 1.0
 * @since 15-2-3 下午9:32
 */
public class RequestQueue {

	private LinkedList queue = new LinkedList();

	public synchronized Request getRequest() {
		try {
			while (queue.size() == 0) {
				// 等待直到有新的Request加入
				wait();
			}
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

		// 返回Request队列中的第一个请求，并移除
		return (Request) queue.remove();
	}

	public synchronized void addRequest(Request request) {
		// 加入新的Request请求
		queue.add(request);
		// 通知getRequest()方法
		notifyAll();
	}
}
